package com.ruoyi.delivery.mapper;

import com.ruoyi.delivery.domain.DelDeliveryOrderBatch;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DelDeliveryOrderMapper {
    /**
     * 根据条件分页查询配送单信息
     * @param logisticId 物流商编号
     * @param deliveryId 配送单号
     * @param origin 发源地
     * @param state 状态
     * @param startDate 创建时间开始范围
     * @param endDate 创建时间结束范围
     * @param vehicleNumber 车辆编码
     * @param deliveryType 配送单类型
     * @param offset 分页偏移量
     * @param pageSize 分页大小
     * @return 配送单信息列表
     */
    List<DelDeliveryOrderBatch> getDeliveryOrders(@Param("logisticId") String logisticId,
                                                  @Param("deliveryId") String deliveryId,
                                                  @Param("origin") String origin,
                                                  @Param("state") String state,
                                                  @Param("startDate") String startDate,
                                                  @Param("endDate") String endDate,
                                                  @Param("vehicleNumber") String vehicleNumber,
                                                  @Param("deliveryType") String deliveryType,
                                                  @Param("offset") int offset,
                                                  @Param("pageSize") int pageSize);

    /**
     * 获取配送单总记录数
     * @param logisticId 物流商编号
     * @param deliveryId 配送单号
     * @param origin 发源地
     * @param state 状态
     * @param startDate 创建时间开始范围
     * @param endDate 创建时间结束范围
     * @param vehicleNumber 车辆编码
     * @param deliveryType 配送单类型
     * @return 总记录数
     */
    int getDeliveryOrderCount(@Param("logisticId") String logisticId,
                              @Param("deliveryId") String deliveryId,
                              @Param("origin") String origin,
                              @Param("state") String state,
                              @Param("startDate") String startDate,
                              @Param("endDate") String endDate,
                              @Param("vehicleNumber") String vehicleNumber,
                              @Param("deliveryType") String deliveryType);

    /**
     * 更新配送单信息
     * @param deliveryOrderBatch 配送单信息对象
     * @return 更新影响的行数
     */
    int updateDeliveryOrder(DelDeliveryOrderBatch deliveryOrderBatch);

    /**
     * 删除单个配送单
     * @param deliveryId 配送单号
     * @return 删除影响的行数
     */
    int deleteDeliveryOrder(@Param("deliveryId") String deliveryId);

    /**
     * 新增配送单信息
     * @param deliveryOrder 配送单信息对象
     * @return 插入影响的行数
     */
    int insertDeliveryOrder(DelDeliveryOrderBatch deliveryOrder);

}
